using System.ComponentModel.DataAnnotations;
using System.Data.Entity.ModelConfiguration;
using Planisoft.Entities;


namespace Planisoft.DAO.Mapping
{
    public class PlanillaCabeceraMap : EntityTypeConfiguration<PlanillaCabecera>
    {
        public PlanillaCabeceraMap()
        {
            // Primary Key
            this.HasKey(t => t.IdPlanilla);

            // Properties
            this.Property(t => t.PeriodoMes)
                .IsRequired()
                .HasMaxLength(2);

            this.Property(t => t.PeriodoAnio)
                .IsRequired()
                .HasMaxLength(4);

            this.Property(t => t.Situacion)
                .IsRequired()
                .IsFixedLength()
                .HasMaxLength(1);

            this.Property(t => t.UsuarioCreac)
                .HasMaxLength(25);

            // Table & Column Mappings
            this.ToTable("PlanillaCabecera");
            this.Property(t => t.IdPlanilla).HasColumnName("IdPlanilla");
            this.Property(t => t.PeriodoMes).HasColumnName("PeriodoMes");
            this.Property(t => t.PeriodoAnio).HasColumnName("PeriodoAnio");
            this.Property(t => t.NroTrabajadores).HasColumnName("NroTrabajadores");
            this.Property(t => t.Situacion).HasColumnName("Situacion");
            this.Property(t => t.FechaCreac).HasColumnName("FechaCreac");
            this.Property(t => t.UsuarioCreac).HasColumnName("UsuarioCreac");
            this.Property(t => t.Ingresos).HasColumnName("Ingresos");
            this.Property(t => t.HorasMensuales).HasColumnName("HorasMensuales");
            this.Property(t => t.Ingreso).HasColumnName("Ingreso");
            this.Property(t => t.Descuento).HasColumnName("Descuento");
            this.Property(t => t.Aportes).HasColumnName("Aportes");
        }
    }
}
